package com.cxhc.system.mapper.app;

import com.cxhc.common.annotation.DataSource;
import com.cxhc.common.enums.DataSourceType;
import com.cxhc.system.domain.app.EventApproval;

import java.util.List;

/**
 * 事项报备审批Mapper接口
 * 
 * @author Dhq
 * @date 2024-08-06
 */
public interface EventApprovalMapper 
{
    /**
     * 查询事项报备审批
     * 
     * @param id 事项报备审批主键
     * @return 事项报备审批
     */
    public EventApproval selectEventApprovalById(Long id);

    /**
     * 查询事项报备审批列表
     * 
     * @param eventApproval 事项报备审批
     * @return 事项报备审批集合
     */
    public List<EventApproval> selectEventApprovalList(EventApproval eventApproval);

    /**
     * 新增事项报备审批
     * 
     * @param eventApproval 事项报备审批
     * @return 结果
     */
    public int insertEventApproval(EventApproval eventApproval);

    /**
     * 修改事项报备审批
     * 
     * @param eventApproval 事项报备审批
     * @return 结果
     */
    public int updateEventApproval(EventApproval eventApproval);

    /**
     * 删除事项报备审批
     * 
     * @param id 事项报备审批主键
     * @return 结果
     */
    public int deleteEventApprovalById(Long id);

    /**
     * 批量删除事项报备审批
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEventApprovalByIds(Long[] ids);


    /**
     * 查询事项报备审批
     *
     * @param id 事项报备审批主键
     * @return 事项报备审批
     */
    @DataSource(DataSourceType.SLAVE_OLD)
    public EventApproval selectEventApprovalOldById(Long id);

    /**
     * 查询历史事项报备审批列表
     *
     * @param userId 事项报备审批
     * @return 事项报备审批集合
     */
    @DataSource(DataSourceType.SLAVE_OLD)
    public List<EventApproval> selectEventApprovalOldList(String userId);
}
